A Processor to be used for a portable information terminal is required to consume low power. For this reason, it is considered to replace a cache memory, a main memory, etc. with a non-volatile memory. An MRAM (Magnetoresistive Random Access Memory) attracts attention because the MRAM satisfies all of three feature requirements of high rewrite durability, high-speed read and write performances, and highly integratable cell areas, among a variety of non-volatile memories. There are high expectations to the MRAM because the MRAM has a higher operation speed than other non-volatile memories when the MRAM is used as a cache, the MRAM has higher area efficiency than conventional memories, and a large-capacity high-speed cache can be built in a processor. Especially, among MRAMs, a perpendicular-magnetization spin transfer mode, referred to as an STT-MRAM (Spin Transfer Torque MRAM), is expected for a variety of applications because of an extremely-small read current, an extremely-short write delay, and a high-speed operation.
However, the MRAM has a problem of a higher write error probability than an SRAM and a DRAM. It is considered to perform a verification process to write data and then read and verify the data. However, the verification process takes time which lowers the access speed. It is also considered to raise a write voltage, which would however be a factor for increasing power consumption. It is further considered to lengthen a write pulse width, which also lowers the access speed.